Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.02.2014, 20:00
Аспирант
Отправить личное сообщение для SVARAI Посмотреть профиль Найти все сообщения от SVARAI
 
Регистрация: 30.11.2013
Сообщений: 41

WebSocket - nodejs
Здравствуйте! Начну с предисловия. Я javascript программист. Достаточно многому уже научился т.к. программирую 2 года. Решил забацать чат приложение на WebSocket в nodejs. Я решил, что технология перспективная, с WS можно будет делать и игры, чаты, приложения, в общем гора всего всего интересного. В чем же проблема? Я нашел много реализаций WebSocket чат - сервер на ноде приложений. Большинство из них не работают или используют библиотеки. Вообще не понял как они подключаются через npn менеджер (открываю его, а он в свою очередь закрывается). Неужели нельзя сделать сервер WS на nodejs без доп. библиотек? В общем, я жутко с этим все задолбался, не нашел нормальной документации (про обычные сервера на ноде полно). Прошу помощи, мне всего то надо понять как сделать простой эхо сервер на nodejs + простой клиент (таких уже много имеется из примеров). Спасибо заранее...
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2014, 15:21
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

Разве использование библиотек -- это зло?..
В данном случае библиотеки облегчают жизнь, поскольку пока еще у некоторых браузеров есть проблемы с совместимостью, а библиотеки помогают это учесть.
Для решения подобной задачи мне помогла библиотека sockjs, она проста в применении и легка по объему.
Использование npm - жизненно необходимо, ибо легче чем npm install sockjs пока еще ничего не придумано...

А что конкретно не получается, можно код увидеть?
Ответить с цитированием
  #3 (permalink)  
Старый 17.02.2014, 08:41
Аспирант
Отправить личное сообщение для SVARAI Посмотреть профиль Найти все сообщения от SVARAI
 
Регистрация: 30.11.2013
Сообщений: 41

Ура! Я все понял и сделал, поднял чат на локальной сети (использовал пример с этого сайта). Вот только интересно, как сделать в этом коде:
var WebSocketServer = new require('ws');

var WebSocketServer = new require('ws');

// подключенные клиенты
var clients = {};

// WebSocket-сервер на порту 8081
var webSocketServer = new WebSocketServer.Server({port: 8081});
webSocketServer.on('connection', function(ws) {

  var id = Math.random();
  clients[id] = ws;
  console.log("новое соединение " + id);

  ws.on('message', function(message) {
    console.log('получено сообщение ' + message);

    for(var key in clients) {
      clients[key].send(message);
    }
  });

  ws.on('close', function() {
    console.log('соединение закрыто ' + id);
    delete clients[id];
  });

});

такую штуку, т.е. чтобы можно было присваивать имена клиентам какие они выберут при открытии чата. На клиенте просто будет переменная с ником, а ее при подключении нужно отправить серверу и присвоить клиенту в списке клиентов.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
websocket роутинг на сервере mue AJAX и COMET 18 08.10.2013 14:16
node.js - ws & websocket Reflexion AJAX и COMET 1 09.04.2013 01:14
немного об nodejs qwermjk AJAX и COMET 5 15.02.2013 10:57
Nodejs и sqlite Octane Серверные языки и технологии 16 21.10.2012 23:18
Comet: NodeJS - с чего начать разработку? Vulkan AJAX и COMET 13 27.11.2010 19:25